Server virtualization is a technology to divide a server into a plurality of virtual computers (hereinafter, referred to as virtual machines) and make different OSes (Operating Systems) or pieces of application software run on the respective virtual machines. By using such a technology, compared with a case of using a plurality of servers each of which is dedicated to each OS or application, it becomes possible to save the effort of managing physical resources and flexibly allocate the resources in accordance with demands.
As the server virtualization technology is spreading, examples of server integration in a data center have increased. Arranging a plurality of virtual machines on a small number of servers causes use efficiency of the servers to increase, and, in consequence, power consumption or environmental burden of a data center to be reduced.
On the other hand, computer resources, such as a CPU (Central Processing Unit) and a memory, available for servers are limited. Thus, arrangements of virtual machines are determined in such a way that the processing capacity of servers is not surpassed. To increase efficiency in server integration, virtual machine arrangement determination that determines on which server the virtual machines are operated becomes important.
Depending on the types of applications running on virtual machines, there is a case in which competition for resources on servers between virtual machines takes place. Thus, it is required to devise a measure to determine an arrangement of virtual machines in such a way as not to cause a problem to the performance of the applications. A method to determine an appropriate virtual machine arrangement with a reflection of such a resource constraint and relations between virtual machines have gathered attention recent years as a key to raising the efficiency of a data center.
Examples of arrangement technologies of virtual machines are disclosed in PTLs 1 to 4 and NPL 1.
PTL 1 discloses a technology that, in arranging virtual machines on host machine, determines an optimum arrangement of the virtual machines based on a capacity limitation of the host machines. The determination of arrangement uses power efficiency as an indicator.
PTL 2 discloses a technology that, with a reflection of a load on and the power efficiency of servers and virtual machines, determines a virtual machine arrangement based on various constraint conditions.
PTL 3 discloses a technology that, in arranging a plurality of virtual machines on servers, determines a virtual machine arrangement that avoids competition for resources by calculating a degree of appropriateness of a combination of virtual machines.
PTL 4 discloses a technology that, in arranging a plurality of virtual machines on servers, enables an allocation of resources of physical machines from the view of operations.
Further, NPL 1 proposes the determination of arrangement of virtual machines with a reflection of various constraints on virtual machine arrangement by use of a constraint programming approach. Since designing constraints concerning arrangement into an algorithm is not required, the determination of arrangement of virtual machines using a constraint programming approach excels in flexibility and expandability. For example, when determining an arrangement of virtual machines with a reflection of new constraints is required, it is possible to deal with the requirement, without revising an existing algorithm, by only adding constraints that can be handled by the constraint programming approach.